package com.example.springboot.common.service;

import com.example.springboot.common.entity.CommonUser;
import com.example.springboot.common.request.BaseRequest;
import com.example.springboot.common.request.LoginRequest;
import java.util.List;

/**
 * 用户管理服务接口
 * 提供用户相关的业务逻辑操作
 */
public interface IUserService {

    /**
     * 获取所有用户列表
     * @return 用户列表
     */
    List<CommonUser> list();

    /**
     * 根据条件查询用户
     * @param baseRequest 查询条件
     * @return 用户列表
     */
    List<CommonUser> listByCondition(BaseRequest baseRequest);

    /**
     * 保存用户
     * @param commonUser 用户对象
     */
    void save(CommonUser commonUser);

    /**
     * 根据ID获取用户
     * @param id 用户ID
     * @return 用户对象
     */
    CommonUser getById(Integer id);

    /**
     * 更新用户
     * @param commonUser 用户对象
     */
    void updateById(CommonUser commonUser);

    /**
     * 根据ID删除用户
     * @param id 用户ID
     */
    void deleteById(Integer id);

    /**
     * 根据用户名获取用户
     * @param username 用户名
     * @return 用户对象
     */
    CommonUser getByUsername(String username);
    
    /**
     * 根据用户名和密码获取用户（用于登录验证）
     * @param loginRequest 登录请求，包含用户名和密码
     * @return 用户对象
     */
    CommonUser getByUsernameAndPassword(LoginRequest loginRequest);
}